
/**
* @Title: SingletonFour.java
* @Package com.leetone
* @Description: 【】
* @date 2018年8月29日 下午4:44:49
* @version V1.0
* @Company: 上海未泰信息技术有限公司
* @author:[谭磊][leetone123@163.com]
*/

package com.leetone;

import java.util.concurrent.locks.ReentrantLock;

/**
* @ClassName: SingletonFour
* @Description: 【单例模式线程安全，性能高，很常见的写法】
* @date 2018年8月29日 下午4:44:49
* @Company: 上海未泰信息技术有限公司
* @author:[谭磊][leetone123@163.com]
*/

public class SingletonFour {
	private static SingletonFour instance;
	private static ReentrantLock lock = new ReentrantLock();
	private SingletonFour() {}
	public static SingletonFour getInstance() {
		if(null == instance) {
			try {
				lock.lock();
				if(null == instance) {
					instance = new SingletonFour();
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				lock.unlock();
			}
		}
		return instance;
	}
}
